import request from '@/utils/request'

// ==================== AI模型管理 ====================

// 分页查询AI模型
export function getAiModelPage(params) {
  return request({
    url: '/v1/ai-models',
    method: 'get',
    params
  })
}

// 获取AI模型详情
export function getAiModelDetail(id) {
  return request({
    url: `/v1/ai-models/${id}`,
    method: 'get'
  })
}

// 创建AI模型
export function createAiModel(data) {
  return request({
    url: '/v1/ai-models',
    method: 'post',
    data
  })
}

// 更新AI模型
export function updateAiModel(id, data) {
  return request({
    url: `/v1/ai-models/${id}`,
    method: 'put',
    data
  })
}

// 删除AI模型
export function deleteAiModel(id) {
  return request({
    url: `/v1/ai-models/${id}`,
    method: 'delete'
  })
}

// 启用/禁用AI模型
export function toggleAiModelStatus(id, enabled) {
  return request({
    url: `/v1/ai-models/${id}/toggle`,
    method: 'post',
    params: { enabled }
  })
}

// 测试AI模型
export function testAiModel(id, message) {
  return request({
    url: `/v1/ai-models/${id}/test`,
    method: 'post',
    data: { message }
  })
}

// 获取可用模型列表
export function getAvailableModels() {
  return request({
    url: '/v1/ai-models/available',
    method: 'get'
  })
}

// ==================== AI聊天记录管理 ====================

// 分页查询聊天记录
export function getAiChatPage(params) {
  return request({
    url: '/v1/ai-chats',
    method: 'get',
    params
  })
}

// 获取聊天记录详情
export function getAiChatDetail(id) {
  return request({
    url: `/v1/ai-chats/${id}`,
    method: 'get'
  })
}

// 删除聊天记录
export function deleteAiChat(id) {
  return request({
    url: `/v1/ai-chats/${id}`,
    method: 'delete'
  })
}

// 批量删除聊天记录
export function deleteBatchAiChat(ids) {
  return request({
    url: '/v1/ai-chats/batch',
    method: 'delete',
    data: ids
  })
}

// 获取用户聊天记录
export function getUserAiChats(userId, params) {
  return request({
    url: `/v1/ai-chats/user/${userId}`,
    method: 'get',
    params
  })
}

// 获取模型聊天记录
export function getModelAiChats(modelId, params) {
  return request({
    url: `/v1/ai-chats/model/${modelId}`,
    method: 'get',
    params
  })
}

// 搜索聊天记录
export function searchAiChats(keyword, params) {
  return request({
    url: '/v1/ai-chats/search',
    method: 'get',
    params: { keyword, ...params }
  })
}

// 导出聊天记录
export function exportAiChats(params) {
  return request({
    url: '/v1/ai-chats/export',
    method: 'get',
    params,
    responseType: 'blob'
  })
}

// ==================== AI使用统计 ====================

// 获取使用统计
export function getAiUsageStatistics(params) {
  return request({
    url: '/v1/ai-usage/statistics',
    method: 'get',
    params
  })
}

// 获取用户使用统计
export function getUserAiUsageStatistics(userId, params) {
  return request({
    url: `/v1/ai-usage/user/${userId}/statistics`,
    method: 'get',
    params
  })
}

// 获取模型使用统计
export function getModelAiUsageStatistics(modelId, params) {
  return request({
    url: `/v1/ai-usage/model/${modelId}/statistics`,
    method: 'get',
    params
  })
}

// 获取热门问题
export function getPopularQuestions(limit = 20) {
  return request({
    url: '/v1/ai-usage/popular-questions',
    method: 'get',
    params: { limit }
  })
}

// 获取使用趋势
export function getAiUsageTrend(params) {
  return request({
    url: '/v1/ai-usage/trend',
    method: 'get',
    params
  })
}

// ==================== AI配置管理 ====================

// 获取AI配置
export function getAiConfig() {
  return request({
    url: '/v1/ai-config',
    method: 'get'
  })
}

// 更新AI配置
export function updateAiConfig(data) {
  return request({
    url: '/v1/ai-config',
    method: 'put',
    data
  })
}

// 获取API密钥配置
export function getApiKeyConfig() {
  return request({
    url: '/v1/ai-config/api-keys',
    method: 'get'
  })
}

// 更新API密钥配置
export function updateApiKeyConfig(data) {
  return request({
    url: '/v1/ai-config/api-keys',
    method: 'put',
    data
  })
}

// 测试API连接
export function testApiConnection(provider, apiKey) {
  return request({
    url: '/v1/ai-config/test-connection',
    method: 'post',
    data: { provider, apiKey }
  })
}

// ==================== 提示词模板管理 ====================

// 分页查询提示词模板
export function getPromptTemplatePage(params) {
  return request({
    url: '/v1/prompt-templates',
    method: 'get',
    params
  })
}

// 获取提示词模板详情
export function getPromptTemplateDetail(id) {
  return request({
    url: `/v1/prompt-templates/${id}`,
    method: 'get'
  })
}

// 创建提示词模板
export function createPromptTemplate(data) {
  return request({
    url: '/v1/prompt-templates',
    method: 'post',
    data
  })
}

// 更新提示词模板
export function updatePromptTemplate(id, data) {
  return request({
    url: `/v1/prompt-templates/${id}`,
    method: 'put',
    data
  })
}

// 删除提示词模板
export function deletePromptTemplate(id) {
  return request({
    url: `/v1/prompt-templates/${id}`,
    method: 'delete'
  })
}

// 获取热门提示词模板
export function getPopularPromptTemplates(limit = 10) {
  return request({
    url: '/v1/prompt-templates/popular',
    method: 'get',
    params: { limit }
  })
}
